The present invention relates to a bus arbiter for and a bus arbitrating method of arbitrating a bus among a plurality of bus masters.
In recent years, with a speed-up of processing in a communications system and in an I/O device, the processing of bus masters connected to the bus of a computer system is also speeded up. Connected, consequently, in mixture to the bus are the communications system and I/O device that perform the processing at a high speed, and the communications system and I/O device that perform the processing at a low speed.
On the other hand, the computer system is diversified, and a variety of combinations of the communications systems and the I/O devices are connected to the single line of bus.
Since each bus master uses one bus, the bus is allocated to each bus master. The bus is allocated to each bus master by a bus arbiter for arbitrating the bus with respect to bus request signals transmitted from the plurality of bus masters.
Each of the plurality of bus masters has a different data transfer velocity. Each bus master has to transfer the data within a predetermined time. For this reason, the bus arbiter is required to flexibly change an allocation of the bus to the respective bus masters.
Herein, the way of allocating the bus will be discussed in detail. The bus arbiter is constructed of priority determining units and a bus service holding unit. The priority determining unit determines the allocation of the bus to each of the bus masters by a logic operation.
The priority determining unit takes any one of a linear method and a round robin method. The linear method is a method of prioritizing the bus with respect to the individual bus masters. The round robin method is a method of evenly allocating the bus to each bus master at every bus cycle.
When each of the bus masters transmits a bus request signal to the bus arbiter, the bus arbiter outputs a bus grant signal for permitting only one of the plurality of bus masters to acquire the bus.
Started is a bus cycle of the bus master acquiring the bus. Then, the bus cycle is terminated by an acknowledge response ACK indicating a recognition of the bus master acquiring the bus from a bus slave.
In the prior art bus arbiter, however, the priority determining unit determines, when designed, the allocation of the bus to each bus master. Hence, there arise the following problems.
In the case of adopting the linear method, the bus master exhibiting a high data transfer velocity is connected to a location of a high priority. That is, the bus master undergoes a constraint in terms of a physical position.
Further, in the case of adopting the round robin method, the bus is evenly allocated to each bus master. For this reason, the bus master may be connected in any position.
A bus transfer capability is evenly allocated to each bus master. Therefore, the bus master coming down to the lowest-order has to wait for a time equivalent to the number of bus cycles, which number corresponds to the number obtained by subtracting 1 from the number of bus masters, in order to acquire the bus.
Each of the bus masters, however, has such a constraint that the bus master has to transfer the data within the predetermined time. The maximum transfer capability is therefore confined to the above predetermined time. For this reason, the number of bus masters is limited.
As explained above, in the conventional bus arbiter, the number of bus masters and the physical connecting positions thereof are limited corresponding to the allocation of the bus. Also, the bus arbiter can not be diverted to buses of other computer systems.